═══ 1. About Downsort ═══ Downsort was originated in 1987 as a program for my own use when I was SYSOP of the Bulletin Board PC-Square (2 The program name is related to the SORTing of the collection of DOWNloadable files, in DOWNward time-stamp sequence and an online Bulletin was the only list that was produced at that time. PC-Square was running BinkleyTerm and OPUS under DOS, and file-requesting was not so popular then. Now PC-Square runs with OS/2, BinkleyTerm and MAXIMUS CBCS. I'm not SYSOP anymore but still strongly involved. As a contribution to PC-Square and the large international Bulletin Board community of MAXIMUS CBCS boards, and in the highly appreciated spirit of BinkleyTerm, I decided to upgrade my Downsort program to the current software. During the past years a lot of improvements and extensions have been made: many user-configurable options for many more output formats then the original Downsort. The only dependency of Downsort on MAXIMUS CBCS is a parameter-file AREA.DAT, which is usually created with a MAXIMUS utility (SILT(P)), which itself can be used without actually running MAXIMUS! This is the way I work for testing of Downsort. Reference gives an impression of recent history. Downsort is now developed in an OS/2 environment, but it is distributed as 'family'-application: it runs under OS/2 and DOS. Downsort is in its 6-th year of development and has entered a period where life becomes more and more complicated. While adding new features, I have tried to maintain compatibility. This is the main cause of complications. Maybe in one of the newer versions I have to leave this compatibility in favour of maintainability and user-friendliness. In anticipation of this, please do not use undocumented features, or styles of usage that are not described in this document. ═══ 1.1. Registration and Shareware Fee ═══ Downsort is a $ 0.00 Shareware Program. This means (to me) that you respect the commonly known rules for shareware, but you don't have to pay me anything. Registration is voluntary: please send me a netmail message with your name and (net-)address if you are a regular user of Downsort as SYSOP. That gives me an impression of the usage and the impact of changes to Downsort. If you tell me that you are running Downsort on your Bulletin Board as service to your users, and you appreciate to be mentioned, I'll add your name to the reference list in Reference. ═══ 1.2. Warranty ═══ For this price? You must be kidding! But I'll listen to your complaints and suggestions, and if time permits, I'll work on the improvements you suggested. ═══ 1.3. Acknowledgements ═══ I would like to thank all users that contributed with constructive remarks and encouraging appraisals. Without doubt Emmanuel Sandorfi of 2:320/5 holds the record in number of suggestions and amount of additionally required programming effort. He also provided some additional title-fonts (2 and 3). I also would like to thank the regular users (SYSOP's of Bulletin Boards) who made Downsort much more popular than I ever dreamed of! A collection of geographically dispersed Boards can be found in Reference. ═══ 2. Overview ═══ Downsort is a program to make lists of available download files for Bulletin Board Systems, especially MAXIMUS CBCS. The different types of lists are each for a specific audience (online bulletin board user, file-requestor, SYSOP) and purpose (all files, recent acquisitions). Within each type there are many ways to customise the contents (selection on user-privilege or user-interest), and format (sort-sequence of files, titles, logo, etc). Downsort can produce the following report-types Reference for you: (all these can be produced in one run). o user-lists - BBS-list, a colorful overview for online users of MAXIMUS CBCS - NEW-list of the most recent files (as a response to a file-request of 'NEWFILES') - ALL-list for a complete overview in a file-group per area (as a response to a filerequest of 'FILES' of 'ALLFILES') - IPF-list similar contents as ALL-list, but in a different presentation format (VIEW-able under OS/2) - GBL-list for a complete overview over the area-boundaries, as an alternative for ALL-list if you don't want to bother file-requestors with your area-structure o SYSOP lists: - ORPHAN-report as a help with management of the contents of your area's and directories, and to correct possible upload problems or inconsistencies - DUP-list for a list of duplicate filenames as a help to control your disk-space and with version management. - OKFile for (Binkley) File Requests. - EMI-list for a list of new file arrivals to be included in an announcement message. - Updated FILES.BBS files The lists can be generated for different privilege levels, and be customised to a very high extend to present your system as you like it to be seen by your users (headers, log, etc). At the same time Maximus (and OPUS) conventions are reflected in the way the file information is presented. A sample of most of these lists can be found in Reference. In short: Downsort is a very versatile tool to manage your database of files, both in an OS/2 and DOS environment. ═══ 2.1. Purpose and Objectives ═══ Downsort is designed for the following purposes: 1. Produce different overviews of files which are available for download by online users of the Bulletin Board and by File Requestors. QUICK and EASY file retrieval is the main goal for the lists. Therefore many lists-types and within a type several variations should be available for SYSOP and users. 2. Should not disclose files to users (file-requesters) without positive agreement by SYSOP. 3. Detect discrepancies between the contents of FILES.BBS and the corresponding download directory, such as: o The directory contains so called orphan-files, which have no descriptive entry in FILES.BBS. o FILES.BBS contains entries of which the file in not in the directory (is 'offline'). This may be on purpose! 4. Must be able to be run unattended (typically overnight). The file-access privilege system of a Bulletin Board System like Maximus CBCS should be respected by the reports. ═══ 3. User's Guide ═══ This chapter explains the possibilities of Downsort. Parameter specifications will be covered in Reference. ═══ 3.1. Initial setup ═══ When you are going to use Downsort for the first time, you have to make a number of decisions. Below you'll find a kind of check-list, which is setup to help you with a logical sequence of tasks to make the use of Downsort succesful. It does NOT give detailed specifications, these can be found in Reference. The specifications will be put into a configuration file Downsort.CFG, which may contain information about: 1. Data Collection File information will be collected from: o Privilege and download path-information from AREA.DAT o Actual file-information from download directories o FILES.BBS files for file descriptions 2. List Type Selection Downsort can produce the following report types for you (all in one run). o ORPHAN-report for SYSOP use only o BBS-list for online users of MAXIMUS CBCS o NEW-list(s) for a list of the most recent files o ALL-list(s) for a complete overview in a file-group per area o IPF-list(s) same as ALL-list, but in a different presentation format (VIEW-able under OS/2, there is a special IP2-list for OS/2 2.0). o GBL-list(s) for a complete overview over area-boundaries o DUP-list(s) for a list of possibly duplicate filenames o OKFile(s) for (Binkley) File Requests o EMIFile(s) to for a list of file arrivals over the last period o Updated FILES.BBS files 3. File selection Reporting of file-information can be limited by: o Reporting privilege: only those files up to a certain privilege level will be listed o Area INclude or EXclude: for sub-selection for special interest groups o Number of files or period (days, weeks or months) to be reported 4. List Customisation The layout of the lists can be jazzed-up with: o BLOCK-title and its font o TopTitle, SubTitle, BottomTitle, Include (logo-) file o Sorting sequence of area's in ALL-list (unsorted, name, include) o Sorting sequence of files (unsorted, date, filename) o Truncation or wrapping of file descriptions o Area- or file-privilege information o Message and Warning texts o Handling of Avatar codes in comment lines (strip or mimic). All in the language which suites your audience best. The sample Downsort.CFG file (see Reference) contains defaults and a brief information to help you with the parameter specifications. Below you can find some more explanation. ═══ 3.2. Data Collection ═══ AREA.DAT A MAXIMUS file 'AREA.DAT' is absolutely required by Downsort. It is however not necessary to run MAXIMUS itself, the AREA.DAT file is created with SILT(P) from the MAXIMUS package. You can use this utility without the other MAXIMUS stuff. In fact I do that myself (NOT running a MAXIMUS board)! If you run Downsort in a directory without AREA.DAT, then you should use specify the filespec for AREA.DAT. It allows also to specify a different AREA.DAT file than the one that is used by your MAXIMUS. With SILT(P) you may build a special AREA.DAT for exclusive use by Downsort, with different, less, or even more directories! Probably much more convenient is the use of AreaINclude or AreaEXclude in Downsort.CFG to limit the contents of the lists to a group of area's, that you want to report together, while you use the regular AREA.DAT. A combination of a 'special' AREA.DAT and AreaIN/EXcludes is another option to obtain areagroups. Remember: The combination of area privilege in AREA.DAT and the report-privilege specification in Downsort.CFG may restrict the contents of reports. AreaINclude is subordinate to this and will work only for the collection of area's within these privilege limits. If Downsort reports a memory constraint (see also Reference), you may use these techniques as circumvention: exclude one or more of the file area's and rerun Downsort. FILES.BBS Downsort uses the information in AREA.DAT to locate the description files, usually called FILES.BBS. So either the ListFile specification in AREA.DAT, or the download directory to locate them (Maximus default). ═══ 3.3. List Type Selection ═══ Downsort can produce several types of output reports, indicated by type of list. The following list types are available: ORPHAN report This is a list of all files in download directories for which there is no entry in any FILES.BBS file of all areas which have this directory specified as download path. The report contains date, area-name and area-path of the orphan. The entries are sorted on area and filename. Not reported are MAXIMUS system files like: FILES.*, *.BAK, DIR.?BS and SYSTEM*.?BS. If you have more than 1 area pointing to the same download directory, but with different FILES.BBS files, the orphans are reported for the first of these areas only. Note: If there is an entry for a file in FILES.BBS without a description, the file is NOT considered to be an Orphan! BBS-list This is a list of downloadfiles that became recently available on your system. File selection is on date, but for presentation the list may be sorted on date, newest first or on filename. The list contains compiled MECCA control sequences, for direct use in MAXIMUS bulletins: a user-privilege sensitive list! It might be a good idea to put a translated [onexit] string, which translates into: ^OFpath. When a user exits from the BBS-list bulletin, it will fall back to the exit-bulletin. The length of the file (number of file-entries) may be limited by parameters: o file-count o file age in days, weeks or months (30 days) o maximum privilege (never more than available within the privilege limit). If neither specified it will contain all available files in all download directories. To make it easy for you to build a complete MAXIMUS bulletin-file a user-provided header is included preceding the list and a trailer at the end of the list. Header and trailer can be built by SYSOP, and may contain any information and bulletin-control sequences (a sample is provided). NEW-list Basically the same list as above, but in simple ASCII format. This list is suitable for regular file-requestors as brief overview of the latest additions, updates or replacements. EMI-list Basically the same as NEW-list, but more compact: o contains file also file-time and exact filesize in bytes. o Description wrapping (if used) is overlapping the file-details except filename. The EMI-list is especially suitable to generate file-arrival messages (the output should be included by another program). ALL-list A list of all downloadfiles by area. Files of the same area are listed in groups, separated by imbedded headers with area-name, -description, and -privilege. Actual status information is provided in the area-header as well: area-filecount and -bytecount, and latest acquisition (date and file-name). At the end a SUMMARY report shows per area: area-title, file-count, byte-count, and totals. The size of this list is limited only by the privilege parameter. The numbers in area-header and summary report show only what is available for the particular privilege. You may generate several ALL-lists in one run! IPF- and IP2-list Same contents as ALL-list but in a different format. Only useful for users that run OS/2 (OS/2 version 1.2+ under Presentation Manager). This file has the format of an input-file for the Information Presentation Facility Compiler (IPFC). There is a separate form of this list (called IP2-list) for OS/2 2.0. It produces information that can be compiled only with the accompanying IPF Compiler of the OS/2 2.0 Toolkit. The result however can be VIEWed under OS/2 1.3! GBL-list Similar to ALL-list, but where ALL-list gives the files in groups per area, the GBL-list ignores area-boundaries and gives a single group. It contains an extra column with the area-code for each file, there is no area-summary. SYSOP may choose which of both is suitable to make available to users, and which to use for himself (or even both). The GBL-list can be used in stead of the ALL-list if your users prefer searching in the list without having to bother about area-organisation. Although one of the original purposes of the GBL-list was checking for duplicate files, there is now also a special report for this particular purpose (see Reference). DUP-list Simple report of possibly duplicate files over the area's. The format is basically the same as the GBL-list, but only files with the same filename are reported. 'Offline' files are included in the check, orphans are not! Please note that the DUP-list may not always contain what you expect. It can be more or less, for example: o Downsort looks primarily at filenames only (extension is of second importance, path is completely ignored). o You may have explicitly excluded area's from the search. o You may have excluded area's by privilege: Downsort completely ignores area's with a higher privilege than any report asked for. o You have duplicates in 'orphan'-state. These circumstances may give 'false' signals or hide duplicates! All duplicate files within the privilige-range will be reported, even when a counterpart has a higher privilege or are orphan (and thus will not be reported in the DUP-list)! You may need a file-finder-utility to search for the 'partner'-file in one of the directories with a higher privilege. There are very few other parameters applicable to this list. File descriptions may be specified as truncated or wrapped. All user-titles are left out and only a sort on filename is supported. Suppression of reporting files with equal filenames and different extensions is possible with the "NonDupEXT" keyword in Downsort.Cfg. You specify pairs of extensions. Two files with equal filename and one of each having an extension specified as 'pair' will not be reported as duplicate. For example, if you specify: NonDupEXT SDN SDA then file pairs xyz.SDN and xyz.SDA will not be reported in the DUP-list. This pair-exclusion can also be used for more than 2 extensions, but the exclusion works only for pairs of files. So then you must specify as many pairs as can be formed. For example if you want to exclude file combinations like xyz.IDX xyz.DAT and xyz.EXT, then you should specify: NonDupEXT IDX DAT IDX EXT DAT EXT Warning: The check on duplicates by Downsort works only when you specify all possible pairs of extensions! If you fail to specify any possible pair, the Dup-list may contain false signals. Multiple pairs may be specified on a line, and multiple lines are allowed. Up to 100 pairs of extensions will be accepted by Downsort in total. OKFile List filespecifications for file-requests in BinkleyTerm style. The generated paths in the list obey the following rules: o the area-privilege is within the privilege limit of the report o the area is not excluded (by areaEXclude) o the area has at least 1 file within the privilege limit of the report The paths are sorted on area-name (although the area-name is not part of the list). There is no check on duplicate paths. The list is not jazzed-up with titles, etc, but a file may be included in front of the list if specified on the OKFileList in Downsort.CFG (see Reference). This option allows you to insert a list of 'magic' names in the OKFile. Two formats are available: o SHORT format with lines in the format "filepath\*.*". This is the regular format for BinkleyTerm and other mailers. o LONG format with lines in the format: "@filespec filepath\filespec". All files have a 'magic'-name assigned and there are no generic file specifications in the OKFileList. This prevents directory searches for BinkleyTerm for each file request. Note: Some newer versions of BinkleyTerm can use the file base of Maximus to find a file even faster. FIL-list New "FILES.BBS" type of file may be (re-)created, one for every area. The contents of the file-information will be about the same as the original FILES.BBS, but with the following notes: o A header is generated with area-name, -title, and -privilege. Also the total amount of files and bytes and the most recently acquired new file in this area is part of the header information. o Files with a privilege up to and including the area-privilege are listed first. o Files can have a privilege other than the area-privilege when the original FILES.BBS file contains ^Pp-sequences ('p' being a privilege letter). This construction will be rebuilt by Downsort. Files with a higher privilege than the area-privilege will follow after a compiled MECCA-sequence (^Pp) in the new FILES.BBS. Downsort respects these indicators when reading FILES.BBS, so all file-privilege information is retained. This ensures no accidental loss of file-information, and the regular user won't see more than he should. o Wild-card specifications in the original FILES.BBS are not propagated to the new FILES.BBS. o The file description is kept internally as a single string of about 2 KBytes (Maximus 2.0 supports up to 240 bytes!) When creating FILES.BBS files, this will be the file format (single record per file-entry). The original FILES.BBS may contain a (long) single string description, or multiple (short) multiline descriptions. When encountering multiline descriptions in input-FILES.BBS, Downsort concatenates the separate description lines with a single intermediate space up to a maximum of 2 KBytes. This will be the output format if the FIL-list is requested. o Comments in FILES.BBS will be preserved only when the Keep-Sequence option is used (specify /K on the FilFileList line of Downsort.Cfg). Special attention is requested for the following: o The first 8 lines, if comments (starting with a '-'-character), are discarded, These are assumed to be the standard header for FILES.BBS of Downsort. o Downsort from version 5.7 on uses the 3 characters: <-><ы> for each of its header-lines, and will skip all lines starting with this sequence during the data collection phase, even when encountered after line 8. o You can include your own file with the /I-option on the FILFilePath line in Downsort.Cfg in the header of FILES.BBS. All lines in the include-file for FILES.BBS output will be prefixed by Downsort with the 3 character sequence mentioned above to make sure that these will also be 'refreshed' by Downsort. The destination of FILES.BBS-files is not by definition the same as the origin! When specified with the "FIL:"-parameter (or in the configuration file), the output may be located in a different directory than the original input FILES.BBS. When the output is directed to a separate directory, the files will be named as follows: FILES.ac when all areanames (areacodes) of the selected areas in a single run of Downsort are 3 bytes or less. areaname.BBS when any areaname is longer than 3 bytes. The format of the header will be slightly different. Font specification (/Fx in FILFileList) works for the second case only. Manual checking or post-processing by some other program may follow Downsort, after which the files might be put back on the MAXIMUS specified position. ═══ 3.4. Data Selection ═══ Privilege control The default file privilege to be shown in the lists is SYSOP. All files with a higher privilege than the specified (or defaulted) report-privilege will not appear in the report. Files without a matching filename-entry in FILES.BBS are treated as Hidden. That means that by default these files will not be listed, unless the 'H' privilege is used on the report-request specification. If you run a mailer like BinkleyTerm and support file-requests, you lack the extensive privilege system like Maximus. The only distiction BinkleyTerm makes with file-request is 'unknown', 'known' and 'password-protected'. You may generate multiple download lists with different privilege indictor, depending if you allow these categories to request different file collections a sample of this kind of environment is given in Reference. This is not needed for Downsort.BBS, since this file has imbedded privilege control sequences for MAXIMUS users. But you should specify a sufficiently high privilege for the BBS-list to satisfy your most valuable users! AREA selection When you need file selections on subject, you can use AreaINclude or AreaEXclude to limit the lists to files that are part of certain area-groups. You should realise that this is the latest selection phase: privilege selection has taken place already before AreaINclude or AreaEXclude are processed. So make sure you specified a sufficiently high report-privilege to get the proper areas into the group. Report length For lists that are meant to show the latest file-information only (BBS-list and NEW-list), the length of the list can be limited to a maximum number of file-entries or to file-age in days, weeks or months. ═══ 3.5. List Customisation ═══ Headers, Titles and Include files There are several ways to custimise the appearance of the lists for Downsort. All items in the following list are optional, but the sequence in the reports is fixed and as listed: Pre-Title Up to 20 lines as very first lines of your lists. Any text may be specified. Leading '~'-characters (tilde) will be treated as full-size required blanks, mainly to manually align (center) the text in these lines. There is no automatic centering. You may have to experiment a little. TITLE A short title (8-12 characters), that will be magnified to big BLOCK-letters. There are 4 block-fonts to choose from. Not all characters are supported and lower-case will be translated to upper-case. The '~'-character (tilde) will be treated as full-size required blank, the '`'-character (accent-grave) as half-size required blank. If not specified, a default title is generated as Downsortxy, where xy stands for the current version of Downsort. TitleFont Number of the font to be used for the BLOCK title. If specified as 0, the BLOCK-title will NOT be generated at all. Include-file A text-file to be included. There will be no manipulation of the contents of this file. This include-file may be all you need to obtain a fully custimised list. For the IPF-list this include file will most likely have to contain IPF tags for proper formatting, for the OK-file it will be a list of 'magic' name entries. Sub-Title Up to 20 lines. These are treated like the Pre-Title lines. BottomTitle Up to 20 lines as very last lines of the lists. These follow my 'signature'. The lines follow the same treatment as Pre-Title lines. The BLOCK-title and Pre-, Sub-, and Bottom-titles are used for all reports identically, there is no such thing as an 'individual' title specification for each report. However the Include-file may be different for each report. If you want to build more than 1 list but with different 'headings' or no headings at all, you better forget the Title-options. In stead make heading-files and use the Include option of the individual list specifications. Note: Exceptions: 1. None of the above does apply to the BBS-list. As it will generally be desirable to imbed (compiled) MECCA control sequences in this type of lists, this report will include dedicated top and bottom files (if available in the current default directory). These files must be called Downsort.HDR (header) and Downsort.TRL (trailer). 2. The ORPHAN report will not contain any user-titles. 3. The FILES.bbs files will not use any of the title-specifications, but may use an Include-file. Recommendation: File-requestors appreciate a header with a clear indication of the source of the reports. Many Bulletin Boards use FILES or ALLFILES as 'magic' name, but that is not very distinctive if you collect lists of different boards! So use Downsort's facilities to generate a block-title with your system-name, or an include file with some kind of logo. Note: Specification details and samples can be found in Downsort.CFG. Some SYSOPs do not like to confront their users with privileges. In most headers there will be a line with the reporting privilege. This may be suppressed. File Sorting The file-entries in the lists can be sorted on different keys: o Filedate o Filename o Sequence of FILES.BBS The default sorting sequence depends on the type of list. Some lists do not support some of these sorting keys. Note: File sorting has a local scope. It can be specified for to each listtype individually. Area Sorting The order in which the areas are presented in the lists can be specified: o Order of AREA.DAT o Sorted alphabetically on areaname o Order of areaINclude statement in Downsort.Cfg o Groupname-order The Groupname-order is a special order based on a popular naming convention for areas. Many SYSOPs use areanames with a group-name or -letter followed by a sequence number. With groupname sorting the areaname is split - if possible - into a groupname (if the first character is not be numeric) and a sequence number (if the last part of areaname is numeric). Primary sort key is groupname, secundary sortkey is sequence number. If the first character of the area-name is numeric, the groupname is empty, and if the last part of the areaname is not numeric, the second key is empty. If the ordering does not match your more complicated area naming convention, you can always fallback on a properly sequenced AREA.DAT, or on areaINclude sequence. If Include-order is specified, but AreaINclude is not, then the order falls back to Group-order. The area-order specification has a global scope. It applies to every lists where the areaname is significant, including summaries in ALL- and IPF-lists. Default sorting order is 'Group'. Warnings, Indications, Descriptions and Comments o There are two options for long file descriptions (those that do not fit on a 80-character line): - Truncation at end-of-line - Wrapping to multiple lines Both options are available for all lists, but the defaults vary with the type of the report. o Orphan description: Text that will be reported in the description column of a file, when for this file no entry in FILES.BBS could be located. Default: "--- Orphan ---". o Not-Found description: Text for the description column when the file-entry was found in FILES.BBS, but there was no description present. Default: "--- no description available ---". o Offline description: Text that will replace file-size and file-date, when an entry for this file was found in FILES.BBS, but the file could not be located in the download directory. Default: "** offline **". o Comments in FILES.BBS (mostly used for additional description for groups of files) will be listed when no sorting is specified (the /K option for ALL-, IPF- and FIL-lists). When Downsort encounters Avatar screen handling codes in FILES.BBS these are stripped of or partially imitated in the output lists (unless AVAstrip No is specified in Downsort.Cfg). Typical screen handling commands (cursor movement, color settings) are just stripped, ohers (repeating characters of patterns) are imitated. o Size of a VIEW-page in IPF-list: The IPF-list of area's with more than 250 file entries will be splitted into 'parts' to prevent the IPF-compiler message 'page size exceeded'. But if you have many long descriptions, or wish smaller parts, the page-size can be altered with a parameter on the IpfFileList line in Downsort.CFG. Default: 250. ═══ 3.6. Miscellaneous report information ═══ File Information in Lists 1. Dates are marked with a 'new'-indicator: a '*' if the file is only since a week on this system, and a '+' if it is since a month. Filedates later than the current system date are marked '-' (negative age). 2. In every outputfile the filename, MAXIMUS-area name, file-size and -date, and file-description from FILES.BBS is listed. A report-line will never display more than 79 characters. The file-description will be multi-line in ALL-, IPF- and GBL-list if it is longer than would fit on the standard 79-position line, a word-wrapping technique is used for readability (line-split on word boundary). The description is truncated at end of line in BBS-list and NEW-list. The -T option will force truncation of the description in all reports, the -W option will allow multi-line descriptions in all reports. If a filename is found in FILES.BBS, but no accompanying description, a "--- no description available ---" will be put in place. An alternative text may be specified with Downsort.CFG. Files for which there is no entry in the FILES.BBS (Orphans) are treated as Hidden files, which are only listed in the reports if the Hidden privilege is specified. Note: If you want the orphans to appear in FILES.BBS (or in any other report), you MUST also request an ORP-list! 3. 'OFFLINE" in stead of file-size and file-date is reported if FILES.BBS contains an file-entry while the file is not in the corresponding directory. 4. The BBS-list contains MAXIMUS authorisation controls (^PLp-sequences), corresponding to the privilege of the area or the individual file. So it is not necessary to make different files for different categories of MAXIMUS users, even with the default privilege-limit SYSOP a user will not see the files he/she is not supposed to know about. Other lists do not contain any privilege information, the files (or complete area's) above the specified privilege are simply not listed, however multiple lists can be produced for different categories of users (based on privilege). File Dates One of the function of Downsort is sorting on file date. Since the introduction of HPFS in OS/2 version 1.2, there is not one single file-date anymore! A file on an HPFS volume has different values for: o Creation date o LastAccess date o LastWrite date The date you see normally in DIR-listings is the LastWrite date. Most SYSOPs will have noticed that ZMODEM uploads and file-attaches give file-dates corresponding to the (LastWrite-) date of the sending system. And most utilities handle only this 'single' date. That means that old ZMODEM-uploaded files are generally not on top of the acquisition lists. But HPFS stores the date of arrival on your system (Creation) as well. Downsort handles the Creation date for sorting, but the lists (see below) contain the 'old fashioned' LastWrite date. This has the following consequences: o A new acquisition is on top of lists, if that list is sorted on date, and are marked in the lists as new by a flag for an 'age' of a week or a month. o The listed file-date is the 'ordinary' date. So users can judge for themselves if the file is 'new' for them as well. Note: The LastAccess date is not very relevant for the purposes of Downsort, although SYSOP may see when it was last downloaded. Downsort is delivered with a simple DIR-like utility 'HPFSDATE' to show the three dates of a file on a HPFS volume. Duplicates Duplicate filenames are checked if the DUP-list is requested, and they will be reported only in the DUP-list. So duplicates may appear in the regular user-lists, which means: o If a filename.ext is encountered more than once in different subdirectories of FILES.BBS files, it will appear that many times in the outputlist. The file-privilege reflects that of the area where the file belongs to, unless overridden by a ^Px modifier in FILES.BBS. o It may happen that a file is reported as orphan in one area, and as duplicate in another. It is likely that the file is found in a common download directory of more than one area but it is described in the FILES.BBS of a 'secundary' area, but with the wrong extension. ═══ 4. Parameter Specifications ═══ This chapter tells you how to customise the configuration file and what you might specify on the commandline. A sample configuration file (in Reference) is part of the package. It contains a brief comments (in Binkley and MAXIMUS style) to help you. ═══ 4.1. Commandline parameters ═══ This paragraph deals only with the commandline parameters! NOTE: Parameters from Downsort.CFG are processed first, commandline parameters may complete and (partly) override those in the configuration file. An explanation of how to read the command syntax diagram can be found in the (online) OS/2 Command Reference manual. ┌────────────────────────┐ v │ ──┬─────────┬─┬────────┬─ Downsort ────┬────────────────────┬─┴─────┤ └─ drive ─┘ └─ path ─┘ ├─ @filespec ────────┤ ├─ BBS ─┬──────┬─────┤ │ └─ :p ─┘ │ ├─ NEW ─┬───────┬────┤ │ └─ :pp ─┘ │ ├─ EMI ─┬───────┬────┤ │ └─ :pp ─┘ │ ├─ ALL ─┬───────┬────┤ │ └─ :pp ─┘ │ ├─ IPF ─┬───────┬────┤ │ └─ :pp ─┘ │ ├─ GBL ─┬───────┬────┤ │ └─ :pp ─┘ │ ├─ DUP ─┬──────┬─────┤ │ └─ :p ─┘ │ ├─ OK ──┬──────┬─────┤ │ └─ :p ─┘ │ ├─ ORP ──────────────┤ ├─ FIL ─┬──────────┬─┤ │ └─ :fpath ─┘ │ ├─ nnn ─┬────────────┤ │ └── D|W|M ───┤ ├──┬─ /T ─┬──────────┤ │ └─ /W ─┘ │ ├──┬─ /A ─┬──────────┤ │ ├─ /D ─┤ │ │ └─ /K ─┘ │ ├──── /L ────────────┤ ├──┬─ /H ─┬──────────┤ │ ├─ /Q ─┤ │ │ └─ /V ─┘ │ └──── /X ────────────┘ @filespec The character '@' followed by a complete file specification of the Downsort configuration file (see Reference for details). This file will be used to specify processing parameters. If the file cannot be read, only the commandline parameters are used. NOTE: The use of a configuration file is mandatory when the file AREA.DAT is not in the default directory when running Downsort. Default: Downsort.CFG in current default directory. BBS Create the BBS-list: Downsort.BBS. Default: Downsort.BBS will not be created. NEW Create NEW-list(s): Downsort.N~p, where 'p' is the appropriate privilege class (see below). Default: Downsort.N~p will not be created. EMI Create EMI-list(s): Downsort.E~p, where 'p' is the appropriate privilege class (see below). Default: Downsort.E~p will not be created. ALL Create ALL-list(s): Downsort.A~p, where 'p' is the appropriate privilege class (see below). nnn-limit does not apply to ALL-list. Default: Downsort.A~p will not be created. IPF Create IPF-list(s): Downsort.I~p, where 'p' is the appropriate privilege class (see below). nnn-limit does not apply to IPF-list. Default: Downsort.I~p will not be created. GBL Create GBL-list(s): Downsort.G~p, where 'p' is the appropriate privilege class (see below). nnn-limit does not apply to GBL-list. Default: Downsort.G~p will not be created. DUP Create DUP-list(s): Downsort.DUP. Only the privilege-specification and WRAP/TRUNC flag apply to DUP-list. Default: Downsort.DUP will not be created. OK Create OKFile(s): Downsort.O~p. Only the privilege(s) and include-file specifications apply to the OKFile. Default: Downsort.O~p will not be created. ORP Create ORP-list: Downsort.ORP (orphan report, if any orphans). If an orphan report is not requested, no other report will contain any orphan information, even when 'Hidden' is specified as reporting level. Default: Downsort.ORP will not be created. FIL Create FILES.BBS type of files for each area. The specification does not apply to FILES.BBS, a privilege-limit cannot be specified and defaults to SYSOP. Another privilege limit can be specified however by means of the configuration file. For each individual area the following convention will be used for the name and place of the FILES.BBS list (in this sequence): 1. If the "FIL:" parameter specifies a directory-path, then the output-'FILES.BBS'-files of all areas are put in this directory with the following naming convention: a. When the length of any reported areaname is longer than 3 characters, all outputfiles will be called 'areaname.BBS', where "areaname" is the name of the area according to Maximus' AREA.DAT. b. Otherwise the outputfile will be called "FILES.ac", where 'ac' is the areaname. This is the 'old' naming convention (before version 5.7) of Downsort. In other words: only one of both naming conventions will be used during a single run of Downsort, and if none of the reported area's has a name longer than 3 characters it will be the 'old' convention for all. Previous files in this directory with the same name will be discarded. 2. If "ListFile" is specified in Maximus' AREA.CTL file, then that name and path will be used. 3. Otherwise the file FILES.BBS: will be put in the directory with the download files. For situations 2 and 3 existing files will be renamed to .BAK (older .BAK files will be discarded). Default: FILES.BBS-type of files will not be generated. fpath Optional directory path specification for FILES.BBS-output. See the "FIL:" parameter for usage. Default: none nnn[P] If 'nnn' is specified sec (without a trailing letter), then it is the maximum number of files to be reported in the BBS- and NEW-list(s). When followed by a character (only D, W and M are allowed), then 'nnn' specifies the maximum age of the files in number of Days, Weeks or Months, to be included in NEW- and BBS-lists. A maximum value of 32767 can be specified. Default: all files up to and including the (specified or default) privilege class will be listed.. p Single privilege character. Lists only download files with a privilege of up to and including privilege 'p'. The indicator must be the first character of an existing MAXIMUS privilege level (T, D, L, N, W, P, F, E, C, A, S, H). No error-message is given for an invalid privilege character, there will simply be no file-list for an invalid character! For the BBS-list and DUP-list only a single privilege character is allowed, the files lists will get the extension of BBS and DUP respectively. Default: S (SYSOP): files of all privilege levels will be listed, except HIDDEN files (with real Hidden privilege or files for which no entry could be found in FILES.BBS). pp Multiple privilege characters (minumum 0, maximum 10). Make for every valid specified privilege level a download-list with files of a privilege of up to and including privilege 'p'. The indicator must be the first character of an existing MAXIMUS privilege level. No error-message is given for an invalid privilege character, there will simply be no file-list for an invalid character! Applies to ALL-, GBL-, IPF-, NEW- and OK-lists, these are called Downsort.A~p, Downsort.G~p, Downsort.I~p, Downsort.N~p and Downsort.O~p respectively, were 'p' represents the applicable privilege character. Default: S (SYSOP): files of all privilege levels will be listed, except HIDDEN files (with real Hidden privilege or files for which no entry could be found in FILES.BBS). /T /W Action to be taken if the file description would cause the reportline to exceed 79 characters: o T - truncate the description o W - wrap the description and provide as many reportlines as needed to show the complete description. Default: -T for NEW-list and BBS-list, -W for ALL-, IPF- and GBL-list. /A /D /K Sorting method. o A - Sort the files alphabetically on filename. o D - Sort the files on reversed date sequence (newest file on top of list). o K - keep lines in sequence of FILES.BBS and keep the interfile comment lines. When the -A option is selected, an additional header-line will appear in the BBS-list and NEW-list, indicating the latest acquisition. This line is not needed and will not be done when these lists are sorted on date, since the the latest acquisition will be on top of the list! The -K option is useful in situations where the files are primarily grouped on AREA, i.c. ALL-, IPF- and FIL-list. If and only if this option specified, any imbedded comments in FILES.BBS are copied to the ALL-, IPF- and/or FILES.bbs-files. Default: -K for FILES.BBS, -D for BBS- and NEW-files, -A for other. /L Generate a LONG OKfile with explicit filenames, rather than a list with generic file specifications (path\*.*). /H /Q /V Operating mode o H - help: display screen with essential information about running Downsort, such as the command syntax. In that case the program will not undertake any other action. o Q - quiet: display only start and finish-message, and error messages which prevent the program from proceeding normally. o V - verbose: display a lot of progress messages. If neither -Q nor -V is specified, than the number of console messages will be 'intermediate': more than -Q, but less than -V. Default: none /X Exclude Privilege Indications o X - exclude privilege indications in all list-types. Some SYSOPs want to hide any kind of privilege-system for users and file-requesters of their Bulletin Board System. With the -X option specified all privilege indications will be suppressed. Note: This does not apply to the compiled MECCA privilege controls in the BBS-list! Default: none (privilege indications will be reported). ═══ 4.2. Hints for specifications ═══ 1. All commandline parameters are optional, may be specified in any sequence and are case independent. 2. Parameters from the configuration file are processed before those from the commandline. This has some side-effects, like: o If you specify a specific list in Downsort.CFG, it will be created anyhow, whatever you specify on the commandline. o However, if you specify privilege values on the commandline, only the commandline values will be used, and none from the configuration file. o Commandline parameters have a global meaning, and are applied to all lists (if applicable). For example: if you specify '-A' on the commandline, all lists will be sorted alphabetically on filename. 3. Parameters that can be specified with the configuration file only, and cannot be overridden with a commandline parameter are: o BLOCK title-text and -font o Other titles o Filename and individual list-options o Privilege for FILES.BBS output o Replacements of some warnings and messages that may appear in the lists. 4. Even when specified on the commandline, or in Downsort.CFG, the Orphan-report will be generated only if there are any orphans, and then the specified parameters apply. 5. The IPF-list has to be processed by the Information Presentation Facility Compiler (IPFC). This compiler is part of the IBM Programmers Development Toolkit version 1.2 and 1.3 (maybe also in some other toolkit). The following command has to be issued: IPFC Downsort.IPF /INF The option "/INF" is essential (but not documented!) to obtain a viewable file. Be also sure to have the file Downsort.BMP in your current default directory, or in DPATH, as this will be imbedded by the IPF-compiler. The result of the compilation is a file Downsort.INF, which can be VIEWed with the following command: VIEW Downsort Note: o The names "Downsort", "IPF" and "INF" are used here as sample, actually the filename depends on the specification in the Downsort configuration file, the extensions are the IPFC defaults. o If VIEW gives garbled columns and hardly readable block-titles, then it is most likely that you did not install (or removed) the standard fonts that are delivered with OS/2. Start the 'control panel utility', select 'installation', 'add fonts'. Specify in the 'from'-field C:\OS2\DLL (see HELP of control panel). Now choose at least 1 non-proportional font. ═══ 4.3. Configuration file Parameters ═══ Almost all processing options may be specified in a configuration file. This is a somewhat more convenient way to specify processing parameters, and provides even more customisation posibilities for the lists. It is a good place for the more static parameters of your environment. Commandline parameters are nice to create quickly 'another' list or a different format (for example wrapped or truncated descriptions). The parameters are only mentioned here for completeness, see Reference for a documented specification sample of a configuration file. Parameters with global scope The parameters below influence the execution of Downsort, or have impact on every list (if it is applicable for that list). o File Specification of the MAXIMUS CBCS file 'AREA.DAT'. o Area Selection o Sorting order of areas o List title with BLOCK-characters. o Font for the BLOCK title. o Pre-titles, Sub-titles and Bottom-lines in 'text' format o Descriptive text of orphans, files without a description and files for which an entry is found in FILES.BBS, but could not be found in the corresponding download directory. o Maximum number of entries in NEW-list and BBS-list. Parameters with local scope The parameters below are sub-parameters of the xxxFileList keyword. o Up to 10 privileges for NEW-, GBL-, ALL- and IPF-list (each resulting in a separate list). o Alternate output filename (in stead of the default Downsort). o Directory for the output FILES.BBS-lists o Maximum number of file entries in NEW-list and BBS-list o File-entry sort sequence (filename or date). o Wrap or Truncate long file descriptions. o Title Font selection. o Suppression of privilege indications in NEW-, ALL-, IPF- and GBL-lists. o Include textfile in NEW-, ALL-, IPF- and GBL-lists, and in FILES.bbs. Downsort can generate several lists in a single run, but processes only the specifications of a single xxxFileList of the same type. If you need different layouts, for example an ALL-list with files sorted on date, and another ALL-list with files sorted on filename, then you would need 2 invocations of Downsort with different configuration files. If you specify more than one xxxFileList line of the same type, then the paramaters of each of the lines are 'mixed': some will be overwritten, some others will remain there from previous specifications. It will probably give unwanted effects! A sample configuration file is provided. A listing of this file is imbedded as Reference. It contains a complete specification with comments on: o which options are available o how to specify the options Read and modify the file as you like. Copy the sample file to a save place before you start modifying the original Downsort.CFG! NOTE: The parameters from Downsort.CFG are processed first, then commandline parameters, which may complete and will (partly) override those in the configuration file. ═══ 5. Sample of Getting organised ═══ Assume you are runnung MAXIMUS with BinkleyTerm as front end mailer. Suppose you make a distinction for file-requestors between Unknown, Known and Password-Protected (e.g. corresponding to Disgrace, Normal and Privileged MAXIMUS users). ═══ 5.1. Downsort ═══ You might have a specification like this: Downsort bbs:p new:dnp all:dnp 100 In addition to or in place of the specifications in Downsort.CFG, this specification produces the following lists: o Orphan report (only if there are any orphans). o Downsort.BBS with 100 entries for MAXIMUS users of category Privil. Users with a lower privilege will actually see a shorter list if the file contains Privil entries. o For file requestors of the magic filename FILES a list, a list with all files (with optional titles via Downsort.CFG specifications): - Downsort.A~D for UNKNOWN file-requestors - Downsort.A~N for KNOWN file-requestors - Downsort.A~P for Password Protected file-requestors Note that each list is a complete list of what is available to the user of the specific privilege class, but your system will generally contain more files than listed for UNKNOWN and KNOWN users! o For file requests of the magic filename NEWFILES a list of the 100 most recent additions to your system (with optional titles via Downsort.CFG specifications): - Downsort.N~D for UNKNOWN file-requestors - Downsort.N~N for KNOWN file-requestors - Downsort.N~P for Password Protected file-requestors Note that each list is 100 entries long, but the contents will generally not be quite the same (depending on your privilege strategy). In general: files, which the requestor is not supposed to know about due to his privilege status, will not be on his/her list! Note: The counters on top of the lists indicate what your system has available in total (including higher privileges), so a clever user/file-requester may come up with the question how that is possible: explain that he/she has to earn a higher privilege level! ═══ 5.2. BinkleyTerm ═══ In Binkley.Cfg you should specify for requests of FILES: Avail Downsort.A~d KnownAvail Downsort.A~n ProtAvail Downsort.A~p Furthermore you may need to specify different OKFILEs: OKFile Download.N KnownReqList Download.K ProtReqList Download.P And in each of the appropriate filerequest authorisation files you should specify the appropriate file-spec: ╔═══════════╦══════════════╦═══════════════╦═══════════════╗ ║ in: ║ OKFile ║ KnownReqList ║ ProtReqList ║ ║ ║ (Download.N) ║ (Download.K) ║ (Download.P) ║ ║ for: ║ ║ ║ ║ ╠═══════════╬══════════════╬═══════════════╬═══════════════╣ ║ ..... ║ ......... ║ ........... ║ ........ ║ ║ @NEWFILES ║ Downsort.N~d ║ Downsort.N~n ║ Downsort.N~p ║ ║ @FILES ║ Downsort.A~d ║ Downsort.A~n ║ Downsort.A~p ║ ║ ..... ║ ......... ║ ........... ║ ........ ║ ╚═══════════╩══════════════╩═══════════════╩═══════════════╝ This will result in sending of the appropriate NEW-list to every requester of the magic filename: NEWFILES. If you use the second magic filename, then the Avail-lines in Binkley.Cfg are not needed, and you might prefer this way. Of course if the privilege level of all download area's is the same, this construction is not needed, but in that case it is unlikely that you have specified KnownAvail and ProtAvail! Downsort may create a set of OK-files for you. The privilege system of MAXIMUS CBCS is used to select the download paths in this list. ═══ 6. Packaging ═══ ═══ 6.1. Availability ═══ The most recent version of Downsort is always downloadable and file-requestable from Bulletin Board "PC-Square" of the Dutch IBM employee PC club. Search or request DWNSRT??.* to be independent of the version and compression method! FIDO-net address: 2:512/4; phone: 31-79-424107 (USR HST-DS). Downsort is distributed in area SDSMAX of the international Shareware Distribution System. There is a fair chance you may find a recent version on one of the other bulletin boards, listed in Reference. Downsort is distributed in 2 archives: o A file "DWNSRTxy.ZIP", containing all material you need to run Downsort, including documentation, formatted for browsing or printing (formfeed is the only printer-control). o A file "DWNSRSxy.ZIP", containing all SOURCE material. Note: 'xy' is the version indication, for example DWNSRT .ZIP is the version . runtime package. ═══ 6.2. RUN-time material ═══ WHATSNEW. Summary of amendments to version . of Downsort. DOWNSORT.EXE Execution module for OS/2 and DOS (Family Application) DOWN386.EXE 32-bits execution module for OS/2 2.0 or 2.1. DOWN386.ICO ICON file for DOWN386.EXE. DOWNSORT.DOC Documentation (this file!). DOWNSORT.CFG Sample configuration file. This file contains comment lines with extensive instructions how to specify the parameters in the file. DOWNSORT.HDR Sample BBS-list header. You may use this header, which is only imbedded in the BBS-list, to imbed text and/or MECCA-sequences. A good candidate for the latter would be [onexit], which translates to ^OFpath. See the sample Downsort.HDR file! DOWNSORT.TRL Sample BBS-list trailer. DOWNSORT.BMP Bitmap for the IPF-list, to be included by the IPF compiler. DOWNSORT.INC Sample Include-file for the reports, referenced in Downsort.CFG. DOWNSORT.MAG Sample list of magic names to be included in OKFile(s). See BinkleyTerm documentation for details of its format and contents. HPFSDATE.EXE Program to display all three timestamps of a file on an HPFS volume, and optionally reset the CREATION date to LASTWRITE date (helpful after moving or copying of files). Start the program without options to display command syntax and help. PACKING.LST The actual contents of the package (produced with PKUNZIP -V), added to the ZIP-file after this was created with the foregoing files of this archive. This gives at least some authentication! ═══ 6.3. Source material ═══ DOWNSORT.C Mainline. DOWNCOL.C Data collection functions. DOWNFNT.C Font definition and formatting functions. DOWNPAR.C Processing functions for commandline and Downsort.CFG parameters. DOWNRPT1.C Functions for NEW-, BBS- and EMI-list. DOWNRPT2.C Functions for the IPF-lists. DOWNRPT3.C Functions for the SYSOP-oriented lists, like ORPhan-, OK-, and DUPlicate-lists, as well as FILES.BBS files. DOWNRPT4.C Functions for the ALL- and GBL-lists. DOWNSRV.C Miscellaneous services functions. DOWNVARS.C Constants and global variables. DOWNSORT.H Header file, with external definitions of global variables. DOWNFPRO.H Common (global) function prototypes. DOWNSORT.SCR Unformatted documentation file. This file includes formatting tags in BOOKMASTER style for printing on whatever devices are supported (like IBM page printers). This format is compatible and can be formatted on an IBM host system with DCF (SCRIPT) as well. The file can also processed by the IPF-compiler (just ignore the warnings and error-messages!). DOWNSORT.DEF LINK definition file for OS/2 (1.3 and 2.0) DOWN386.MAK MAKE file for DOWN386.EXE for OS/2 2.0 or 2.1, C Set/2 compiler and appropriate program development toolkit (OS/2 2.0 or 2.1) DOWNSORT.MAK MAKE file for Downsort.EXE OS/2 1.3, MS C-compiler 6.00a. The program development toolkit (OS/2 1.2/1.3) is needed when using IBM C/2 1.1 compiler. PACKING.LST The actual contents of the package (produced with PKUNZIP -V), added to the ZIP-file after this was created with the foregoing files of this archive. This gives at least some authentication! ═══ 6.4. Installation ═══ With the following directions you should be able to setup and run Downsort in a very short time. 1. Make a separate directory for Downsort, and make it the current default directory every time you run Downsort. The separate directory is a recommendation, not a requirement! 2. Copy the files Downsort.EXE and Downsort.CFG from the Downsort package into this directory. 3. Modify (edit) the file Downsort.CFG to specify your environment and list requirements. The sample file contains comments to help you with this process. Most specifications are obvious. AreaDat is the most important parameter: Downsort won't do anything useful if it cannot find this MAXIMUS file. See Reference for a printed sample. 4. You may give Downsort a first shot by just using its name on the commandline, with the parameter -H. This will show a brief HELP-screen with the possible commandline parameter specifications. 5. All reports will be created in the Downsort directory (unless you specified 'fpath' for the FILES.BBS output). Browse the lists to see if you like the contents and titles, and modify the CFG-file to your convenience. ═══ 6.5. Dependencies and restrictions ═══ o Applies to MAXIMUS CBCS 2.01 o Requires OS/2 or DOS 3.0+. o To convert the IPF-list into VIEW-able format, the IPF-Compiler of the OS/2 Program Development Toolkit is required (for the IP2-list the corresponding OS/2 2.0 version of this compiler) o The input FILES.BBS files are assumed to contain only filename.ext (the regular 8.3 format, no support for OS/2 1.2+ HPFS format), the remainder of the line is considered as file description. The filename should be left-aligned (start in position 1). If a privilege modifier (^Px) is encountered in FILES.BBS then 'x' will become the privilege of all subsequent files (it assumes ^Px on a SEPARATE line, the REST OF THE LINE IS IGNORED!). Heading, comments and blank lines in FILES.BBS are ignored, unless /K is specified on the FilFileList line of Downsort.Cfg. In that case comments following line 8 (the standard header created by Downsort) are preserved. The modified privilege might be higher (generally the case) or lower than the area-privilege. ═══ 6.6. Storage and Performance ═══ As a rough estimate of the memory requirements of Downsort, use sum of the following elements: o Program: about 80KB o Each area: 300 Bytes o Each file: 48 Bytes for each download file (excluding file descriptions and excluding orphans if no orphan-list requested) o The sum of the file description texts (average 80 bytes/file?) o The sum of the comments in FILES.BBS if -K option specified The maximum number of area's for reporting is 217. Your system may have more, but Downsort can currently not work properly when more than 217 area's will have to be scanned for files. There is a limit on the number of files that can be processed by Downsort: about 16350. I suppose you'll reach other limits first, for example available memory (under DOS). But might you reach this limit, then you could do one or more of the following: o Use AreaEXclude or AreaINclude to make a selection of groups (for example make separate OS/2 and a DOS file-lists). Downsort will not collect information of 'excluded' areas. o If you have many orphans: get rid of them or do not generate an orphan report. Downsort releases orphan-memory during the data collection phase as soon as it knows that a file is an orphan. o If you have many comment-lines in your FILES.BBS: do not specify /K for ALL- and IPF-lists AND do not activate the FILFilePath parameter in Downsort.Cfg. Downsort will skip comments in FILES.BBS when it does not need them for reporting. Downsort has been built with a 'guess' about needed stack space. The author would appreciate to receive a report for a better estimate. Processor performance was an issue for large file-area's before version 4.5 of Downsort in the data-collection process. That has been partly rewritten in version 4.5 and significantly improved. Fastest execution will always be obtained when the input FILES.BBS is already sorted on filename. ═══ 6.7. Problems ═══ Although I try to prevent the cause of them, there are some unresolved problems in the current version of Downsort: o One user reported unidentified characters in titles. ═══ 6.8. Wishlist ═══ Downsort is not finished! There are a number of wishes and requirements of users and myself to include in future releases. I list them below not in any particular order, but some seem to be more important than others, that differs from SYSOP to SYSOP. And some are more easy to implement than others, which depends mainly on the author! Some wishes don't even make it to be listed below and are implemented immediately! o Follow the MAXIMUS development (changing AREA.DAT and other structures), and support several versions simultaneously. o User-configurable options for: - week and month indicators - indicator for continuation lines in wrapped descriptions - Avatar codes in FILES.BBS headers - [selectable] MECCA control in FILES.BBS - Private headers in FILES.BBS in stead of the standard headers - Right margin (line length) and left margin for continuation lines of long descriptions, and an optional 'indent' for a download counter. o Logging to file in stead of stdout to obtain a history file of Downsort usage. o File-selection with MAXIMUS CBCS key/lock parameters in addition to or in stead of area privilege levels. o Support for use of 'barricaded' areas and key/lock. o List with the format of IPF-list but the contents of NEW-list. o Automatic removal of 'bad' files (like .BAK-files, obsolete files, files that are not in FILES.BBS), maybe move them to a special BAD_FILE directory. Entries in FILES.BBS should be removed accordingly. Remember: Was there ever a time that all your wishes were fulfilled? That was the most boring time of your life, wasn't it? ═══ 7. Internals ═══ ═══ 7.1. Development Environment ═══ The family-version of Downsort (for OS/2 1.3 and DOS) is compiled with MicroSoft C compiler version 6.00a, with the IBM OS/2 Programming Tools and Information (generally called the OS/2 toolkit) under IBM OS/2 Extended Edition 1.3 as COMPACT memory model. The generated code is at 80286 level (Compiler option /G2), since I believe that only very few Bulletin Boards do use an XT these days. The 32-bit OS/2 2.0+ only version of Downsort is compiled with IBM C Set/2 and the 2.0 Toolkit. There is only a single set of source files. A compiler variable takes care of the selection between 1.3 and 2.0 calls where necessary. Downsort has been tested for MAXIMUS CBCS 2.0, with the following Operating Systems: o IBM OS/2 versions 1.3, 2.0 and 2.1 o IBM PC/DOS version 5.0. ═══ 7.2. Program Organisation ═══ The program is organised as follows: o Initialisation: - Read configuration file. - Process commandline parameters. Commandline parameters may override configuration file parameters. o Read AREA.DAT file to collect download pathnames (only of those area's that will participate this time). o For each file-area with a privilege not exceeding any list-request: - Read subdirectory (with find-file-first/next function). Take only Normal files: ignore directory entries, Hidden and System files and volume labels. Also ignore files with the following specifications: FILES.*, *.BAK, DIR.?BS and SYSTEM*.?BS. - For all regular file-entries found in subdirectory: o Get filename.ext, attribute, date, time, size. o Get file-description from FILES.BBS file. The path to the FILES.BBS file is (1) obtained from the "ListFile" specification in MAXIMUS AREA.DAT file, or (2) if not specified from the "DownLoad" specification (among the download files). o Add files with explicit path specifications. o Get file privilege 1) from area, 2) from FILES.BBS file if higher. o When no orphan reporting is required, then drop orphan entries area-by-area. o For the ORP-list: If any orphan found, and the orphan-report is requested, create the orphan report, with the file-entries sorted on (1) area and (2) filename. o For the BBS-list: - Sort the files primarily on descending file-timestamp (and secundary on file-name and area-code). - Resort the first files on filename if requested. - Create output file for sorted list of filenames, -descriptions, etc. The file is placed in the current subdirectory (which generally will be the MAXIMUS directory) with the name Downsort.BBS. - Copy a headerfile (for a customised MAXIMUS bulletin). - Put files in formatted outputfile (filename, area#, date, size, description), but only if description is found in FILES.BBS. Skip files with privilege higher than commandline (or default) parameter. Precede each line with a privilege-control sequence (^PLx string) so that MAXIMUS users below the specified max-priv-level do effectively see only the files they can download. - Include a trailerfile in the outputfile (for a custimised Bulletin). - Report non-listed files on standard output device (which might be re-directed to printer or disk-file). o If requested, put the above file collection in Downsort.N~p with similar contents and layout as Downsort.BBS, but without BBS-control sequences, and without including a header and trailer file. Produce a list for the default privilege (HIDDEN), or one for each specified privilege. o If requested, re-sort files on area and then filename or date, and create Downsort.A~p, containing all files (respecting the privilege restrictions!). Area's with zero files within the applicable privilege limit will not be listed at all (will seem non-existing!). Produce a list for the default privilege (SYSOP), or one for each specified privilege. At the end of the list, an area summary report is generated. o If requested, re-sort files on filename or date only, and create Downsort.GBL. o If requested, re-sort files on area, privilege and filename, and create for each area a FILES.BBS-type of file. o If requested generate a list of probably DUPlicate files. o If requested generate a list of download-paths: the OK-file (not: it will contain only the paths that participated in this run. NOTE: the program firstly reads a directory for existing files (not Hidden- or System-files, and not Subdirectory or Volumelabel), and then reads FILES.BBS to assign a description to each file. This means: o If more than 1 matching file-specification in FILES.BBS of the involved area is found (note that wild-card specifications in FILES.BBS are supported!), than the first matching description from FILES.BBS will appear in the lists (new in version 4.5, was 'last' in previous versions of Downsort). o Files for which no description is found in FILES.BBS will get "---no description available---" (or the replacement string you specified in Downsort.CFG) in the user reports. o Files for which no matching filename in FILES.BBS is found will be listed in the Orphan report (Downsort.ORP). Files for which there is an entry in FILES.BBS, but a corresponding file is not found in the directory will be reported as 'offline'. In special cases this might become a very large list. For example if you collect files in a single directory for different area's, all the files of 'the other' areas are reported as orphan. This will happen for every area, so each file might even be reported many times as orphan! Since the Orphan-list is now optional (from version 5.0 on), this list can be suppressed. Filenames of Orphans appear only in the other reports when the FileList request explicitly specifies the Hidden privilege. ═══ 7.3. Main Data Organisation ═══ Data structure for access to file information via: 1. array of file-pointers (for file-sort!) 2. pointerchain in file-info structures 3. file structure contains pointer to file-description 4. file-structure contains pointer to area-information 5. Array of area-information The structures are shown in the following figure. ╔══════╗ ║ dm ║ ╚══════╝ │ Array of pointers to structures with file info │ ╔═══════════╦════════════╦═════════════ . . . ══════╗ (1) └─────>║ *file[0] ║ *file[1] ║ *file[2] ║ ╚═══════════╩════════════╩═════════════ . . . ══════╝ │ │ │ (2) v v v ╔══════╗ ╔══════╗ ╔══════╗ ╔══════╗ ║ ca ║ ──> ║ next ║ ──> ║ next ║ ──> ║ next ║ ──> . . . ╚══════╝ ╠══════╣ ╠══════╣ ╠══════╣ (first- ║ file-║ ║ file-║ ║ file-║ element) ║ info ║ ║ info ║ ║ info ║ . . . ║ [0] ║ ║ [1] ║ ║ [2] ║ ╚══════╝ ╚══════╝ ╚══════╝ │ │ │ │wildcards│ │ │ └──┐ │ └──┐ │ │ │ │ │ ┌──────────┘ │ (3) v │ v v │ ┌──────┘ ╔══════╗ │ ╔══════╗ │ │ ║file- ║ │ ║file- ║ │ │(files of ║descr ║ │ ║descr ║ │ │ same area) . . . ╚══════╝ │ ╚══════╝ │ │ │ │ │ (4) v v v ╔════════════╦═════════════╦════════ . . . ══════╗ (5) ┌────────>║ area[0] ║ area[1] ║ ║ │ ╚════════════╩═════════════╩════════ . . . ══════╝ │ array of structures of download info ╔══════╗ ║ area ║ ╚══════╝ Schematic overview of Downsort's in-storage database. Note: The area-array cannot be sorted itself: this would invalidate the pointers in the file-information records! The block character image is basically a 10x7 matrix (10 vertical and 7 horizontal 'pixels'). The pixel-array takes two rows at a time, so that each character can be represented with 5 rows of 7 horizontal 'double-pixels'. Each pixel is displayed as a solid block. 1 2 3 4 5 6 7 ╔═╦═╦═╦═╦═╦═╦═╗ ║-║-║-║-║-║-║-║ line 1 (lower + upper) ╠═╬═╬═╬═╬═╬═╬═╣ ║-║-║-║-║-║-║-║ 2 (lower + upper) ╠═╬═╬═╬═╬═╬═╬═╣ ║-║-║-║-║-║-║-║ 3 (lower + upper) ╠═╬═╬═╬═╬═╬═╬═╣ ║-║-║-║-║-║-║-║ 4 (lower + upper) ╠═╬═╬═╬═╬═╬═╬═╣ ║-║-║-║-║-║-║-║ 5 (lower + upper) ╚═╩═╩═╩═╩═╩═╩═╝ Each line is represented by a structure of seven 3-bit fields Each 3-bit field represents a basic element: value char description 0 (blank) 1 ▄ lower half 2 ▀ upper half 3 █ lower+upper halves 4 ▓ gray pattern 5 ▌ left part of upper and lower half 6 ▐ right part of upper and lower half 7 ░ gray pattern 8 ▒ gray pattern for not-supported characters The pitch is variable ('proportional font': a variable number of horizontal pixels). Three fonts are provided with different character-image and size: 1. 6x5 (three lines of max 5 characters) 2. 10x7 (five lines of max 7 characters) 3. 8x7 (four lines of max 7 characters) 4. 10x7 (reverse video image of the 8x7 font) Not all ASCII characters are represented in the font tables! ═══ 8. History of changes ═══ The paragraphs below show a brief history of changes in Downsort (most recent revisions on top of list!). Downsort for MAXIMUS CBCS was developed from an OPUS equivalent (by the same author). Its pre-MAXIMUS history is not really important here and therefore has been omitted. However the name Downsort has been maintained, so to prevent confusion, the version number is inherited (the last version for OPUS was 3.1). ═══ 8.1. Version 5.7 ═══ o A 32-bit version (OS/2 2.0+ only) added to runtime package (no functional differences with the family version). o ICON file DOWN386.ICO added for the 32-bit version of Downsort. o Long areanames (8 characters) are now supported in all reports. o Changed naming convention of 'FILES.BBS' output files when area's with 'long' (more than 3 character) names are used. o The "FILES.BBS"-type of output (selected with FILFileList in Downsort.Cfg) now produces a slightly different header. Downsort recognises its own header and an included-file without 'multiplication'-effects. o Explicit path specifications of files in FILES.BBS are now supported. As a consequence: - The long format of OK-FileList will contain this explicit path in stead of the filearea path. - It seems more appropriate to list the pathspec in the DUP-FileList rather than the file description. Generic filenames (wildcard specifications) are NOT supported (yet)! o File size and date can be included in FILES.BBS output with the '-L' option on the FILFileList line in Downsort.Cfg. o A new keyword 'NonDupEXT' allows suppression of reporting a file as 'duplicate' when it is a member of a pair of files with specified extensions. Example xyz.SDN and xyz.SDA can be excluded from DupFileList. o Improved Avatar stripping. o Bug fix for long 'new'-filelist periods (>32000 days). o Separation between progress signals (stdout) and error messages (stderr) and other 'internal' changes: o Preparations made to remove most commandline parameters. It has been redundant for a long time. Every Downsort specification on the commandline can also be made via Downsort.Cfg. Exception: Specification of a configuration file will remain possible! Good arguments may change this intention, so please object if I am overlooking something. ═══ 8.2. Version 5.6 ═══ o In stead of the regular OKFile format (path\*.*), there is now also an option (/L) to produce a LONG format of the OKFile, containing explicitly all files within privilege with complete file-specification (path\filename.ext). Useful for file-requests at systems with large directories, and especially with CDROM's. With this option in effect, the *.* entries will not be generated, so file requests are only honored with EXACT filenames: wildcard specifications do not work anymore! o Improved display of long areanames (>3 char) in ALL- and IPF-lists. o Avatar codes may be stripped from comment lines in reports. o Missing include-files are now only reported when running Downsort in -V(erbose) mode. o Some bug fixes (some of them causing Trap 000D under OS/2): - If 'downsort.cfg' not found, return code 2 is reported, and downsort.cfg now closed at end of file. - Output of FILES.BBS could be erraneous when also IP2-list selected. - Limit of 217 active area's now relieved (this limit was not documented!). - Improved handling of parameters of FILFilePath-line in the sample Downsort.Cfg file. Also the explanatory comments are revised. o '-'-character now precedes the formfeed character in newly created FILES.BBS files (version 5.6h+). o Downsort source is now compilable with IBM C-Set/2 compiler and IBM OS/2 2.0 toolkit to obtain a real 32-bit version for OS/2 2.0+. ═══ 8.3. Version 5.5 ═══ o Finally(!) a sort capability for area-sequence. Areas can now be presented in order of AREA.DAT ('K'eep original sequence), sorted on areaname ('A'lphabetically), sorted in alphanumeric ('G'roup) sequence or in order of areaINclude ('I'). The group-sequence is useful with a popular naming convention whereby the areaname starts with one or more letters followed by one or more digits. Names starting with a digit will be sorted as if it were all numeric, and will be sorted accordingly. o NEW-, BBS-list and EMI-list (see below) can now also be limited in length by file-age (period specification in number of Days, Weeks or Months). o A new list-type introduced: EMI-list (new file EMIsions). I is a simple list, comparable to NEW-list. It has a more compact format, and gives also file-time and the file-size (in exact bytes). It is especially useful to generate messages with file arrivals over the last period (in combination with a period specification). o Readability improvements in IP2-list. o Documentation extended with sample output for new users of Downsort. o Some bug-fixes: - Compares of path- and area-names now case INdependent - Memory allocation error during collection of comments in FILES.BBS - Index out-of-range in report preparation phase - Processing of /K-option for areas with FILES.BBS but otherwise empty. ═══ 8.4. Version 5.4 ═══ o Inline comments in FILES.BBS will be reproduced now! When AND ONLY WHEN the /K option is specified for All- or IPF-list, or for FILFilePath, the original existing comments in FILES.BBS are copied into All- or IPF-list or newly created FILES.BBS files. So note: /K means now: Keep sequence of FILES.BBS and Keep comments in FILES.BBS and other lists that support the /K option (ALL-, IPF and IP2-list). Note: /K is now the default sort parameter for FILFilePath, so that you do not loose your comments accidently. o Downsort's interpretation of the meaning of 'orphan' changed a little: an 'orphan' is from now on defined as a file for which there is no description in any FILES.BBS of all areas pointing to the same directory. This may reduce improper(?) orphan-reporting by previous versions of Downsort considerably when you have physically a single large directory of which the files are grouped logically in different areas with separate FILES.BBS files. o Duplicate download directories in OK-files will be suppressed. o Area-summaries in ALL- and IPF-lists are again sorted alphabetically on area-name. o A check during the data collection phase on maximum supported file entries (16350) has been added to prevent problems when exceeding this limit. o Orphan entries in FILES.BBS are now preceeded with '^PS' in stead of the unsupported '^PH' (bug fix). o Some specific adaptations for version 2.0: - All files conforming to filespec 'FILES.*' will not be reported anymore. - Area code will be handled as 9 character string: area-name! But in some reports it will be truncated to the first 3 or 4 characters. - AreaINclude and AreaEXclude are used as 'prefix'. Area-name specifications will be treated as group-names: you can include or exclude groups of areas starting with the same characters. - The /b, /t, /bt or /tb flag in FILES.BBS will not appear in the lists, but only when it appears immediately after the filename. It is not stripped from FILES.BBS. o As experiment a new list has been added: IP2FileList. It is a copy if IPF-list, but uses some new formatting features offered by the IPF-compiler of the OS/2 2.0-beta toolkit (i.c. :table.). The result is a faster generation, but above al a faster compilation and a better VIEW. VIEWing under OS/2 1.2 or 1.3 is still possible! ═══ 8.5. Version 5.3 ═══ o New report added: DUP-list, a simple list, for SYSOP-use only, that shows (possibly) duplicate fileNAMES over the area's (the file-extension is not considered in the comparison). o Another new report: OKFile in BinkleyTerm style. A list of download paths within privilege, with option to include magic names. o IpfFileList line in Downsort.Cfg now also allows specification of the IPF pagesize (maximum number of file-entries per VIEW 'page' or 'part'). o Progress signals streamlined, /Q is really silent now! o Fixed bug which caused Trap 000D under OS/2 (protection violation) under some rare conditions. The restriction that first area may not be empty or not contain only orphans has been removed with this change. o Support for MAXIMUS CBCS 1.00 removed: only version 1.02 is supported (and most likely 2.00 as well). o Downsort's change-history before version 5.0 removed from documentation. o Use of MicroSoft C Compiler 6.00a: more free memory for DOS users (also because of slightly improved program structuring). ═══ 8.6. Version 5.2 ═══ o Area selection is now possible within Downsort. Two new keywords are provided in Downsort.CFG: AreaINclude to make reports for selected download area's, AreaEXclude to omit area's from the reports. These keywords have only effect within the collection that would otherwise have been reported completely (restricted by AREA.DAT and report privilege). o FILES.BBS has now a peer relation with the directory in stead of being subordinate, in Downsort terms of course. Filenames and their description in FILES.BBS for which there is no corresponding file in the download directory, are now NOT ignored anymore. In stead the file is reported as 'offline' (on the columns for file-date and -size). You may replace the word 'offline' with an alternative text. o Bug repaired that caused some files to be treated as orphan under certain rare circumstances. And a correction of an error in 'end-of-line' test/search on several places. o As already 'promised' in 5.1, the Area-summary in ALL-list is now in order of AREA.DAT. o Reorganised the documentation to obtain a more logical sequence of subjects. Due to the growing number of options of Downsort, it became more and more difficult to see the trees through the wood. I added a number of paragraphs, especially for new users. It can be useful for YOU too! ═══ 8.7. Version 5.1 ═══ o Since the ORPhan report is optional (changed with version 5.0), orphan entries could and now will be removed from internal storage during the information collection phase of Downsort, but only when no orphan-list is requested! This is especially useful for the situation where a single large directory contains the files of several area's, and whereby the file descriptions are contained in different FILES.BBS files. Normally this will result in reporting lots of duplicate orphans (according to the definition of 'orphan' in Downsort!). With this change memory utilisation is lower and sorting faster. o Another change of this kind: area's with a privilege exceeding any reporting privilege are not scanned anymore. Apart from lower memory utilisation, this might be useful for CDROM and slow disk(ette) systems. o The maximum number of Top-, Sub- and Bottom-Title lines has been extended to 20. o In addition all lists may now include a 'logo'-file with a new -I parameter on the individual report request specification (see sample Downsort.CFG). The file will be copied into the list without any editing or translation. It will be positioned directly behind the block-title and before the subtitle (if any). For example: you may include your BBS-logo or a picture of your system configuration, or anything else you want to tell the file-requestors of FILES, ALLFILES and/or NEWFILES. The IPF-list may also include IPF tags, with artwork, etc. It may even include other files itself! For FILES.BBS the contents of this Include-file will immediately follow the 'standard' header. o All block-fonts have now a new special character <`> (reversed quote), which will be 'printed' as blank (space) with half the width of a normal character. This is useful for fine-alignment (e.g. manually centering) the BLOCK-title. o The chapter on 'titles and headers' has been rewritten to clarify the use of all title-options, please read it!. o In the SUMMARY of ALL- and IPF-lists the areas themselves are not sorted anymore, but presented in sequence of AREAS.CTL specification. This is based on the assumption that the file area's are in some kind of 'natural' order in AREAS.CTL (or maybe it is time to do that now!). o Descriptions in FILES.BBS are now (again) aligned on column 14 of the FILES.bbs file records. o IPF-list again a little more user-friendly (linking of area's). o A number of improvements have been applied to the executiontime messages (when running in VERBOSE mode). ═══ 8.8. Version 5.0 ═══ o Improved IPF-formatting: more colorful, builtin word-wrapping of VIEW used for file descriptions (better VIEWable under OS/2 1.3!). It should now also compile without errors/warnings. Compiling (with IPFC) takes significantly longer however! o The IPF-list of large filearea's (>200 files) split into parts of 200 files to prevent files being left unlisted. o Top-level title in FileLists shows file-count and byte-count as available within the privilege of the list. Thus it indicates what is really AVAILable to the user! Area-count omitted in lists which are not area-oriented. o ORPHAN report made OPTIONAL (must be specified to get it!). ═══ 9. World-wide use of Downsort ═══ PC-Square may be considered as the home-base of Downsort. The most recent version is always available there (file-requests honoured between 07 PC-Square Marcel Stikkelman Zoetermeer, Netherlands 2:512/4 31-79-424107 The following SYSOPs have reported using Downsort on their respective board. OS/2-MANiA Emmanuel Sandorfi Paris, France 2:320/5 33-1-64090640 OS/2 TASK BBS Rene Carlsen Skagen, Denmark 2:231/910 45-98451070 Grizzilus Maximus Collin Adams Preston, UK 2:250/121 44-772-828975 Paradigmus Maximus John Taylor London, UK 2:253/68 44-81-566-5393 Runnin' with the Devil Roberto Sonzogni Treviglio BG, Italy 2:331/205 39-363-302798 Fernwood Emitt Dove Branford CT, USA 1:141/209 1-203-483-0348 The Planet Earth Joel Lambert Bridgeport CT, USA 1:141/455 1-203-335-7742 Bell's Theorem Jeremy Buhler Houston TX, USA 1:106/7674 1-713-777-0633 OS/2 Shareware Pete Norloff Fairfax VA, USA 1:109/347 1-703-385-4325 Singing Bear John Tarbox Wilmington DE, USA 1:150/130 1-302-984-2238 La Jungle BBS Stephane Seguin Quebec, Canada 1:163/116 1-819-595-4917 3M Australia Graham Stair Sydney, NSW Australia 3:711/409 61-2-498-9184 I have received reports from others. Too many for this list, which is just meant to point to a system in your neighbourhood(?). You may either logon to one of these boards, or perform a file-request of 'FILES' or 'ALLFILES' to get an impression of Downsort's capabilities. ═══ 10. Sample Lists ═══ Below follow a number of samples of list layouts and contents. Not shown are the BBS-, and IPF-lists, since these are screen- rather than paper-oriented, with their specific formatting and color settings. The dates and sizes in these lists have been manipulated! ═══ 10.1. ALL-list ═══ ═══════════════════════════════════════════════════════════════════════════════ █▀▀▀▀▀▀ █ ║ OS/2 - Fernwood - New Acquisitions █▄▄▄▄▄ ▄█ ║ Available: 143 files (0.0 MB) ██ ██ ║ Privilege: Disgrace ██ ██ ║ Newest: XLIST233.ZIP 3-22-91 (avail: 7-26-91) ─────────────────────────────────────────────────────────────────────────────── Filename Size Date Description ──────────── ───── ───────── ────────────────────────────────────────────────── AAFONTS.ZIP 1K 3-22-91 Text from IBM regarding Anti-aliased Fonts. AFP_120.LZH 1K 3-22-91 Areafix 1.2 for OS/2. Permits systems that do echomail with yours to change their complement of areas independently. ═══ 10.2. GBL-list ═══ (Sun Jan 05 15ZIP 3-22-91 (avail: 7-26-91) Date flag: new on this system since: * = 1 week, + = 1 month Filename Area Size Date Description ──────────── ──────── ───── ───────── ───────────────────────────────────────── 2COLDIR.ZIP F3 1K 3-22-91 DoubleDir for OS/2 2MONITOR.ZIP F4 1K 3-22-91 Source and .EXE for running 2 monitors. ═══ 10.3. NEW-list ═══ (Sun Jan 05 16ZIP dd 3-22-91 (avail: 7-26-91) Date flag: new on this system since: * = 1 week, + = 1 month Filename Area Size Date Description ──────────── ──────── ───── ───────── ───────────────────────────────────────── 2COLDIR.ZIP F3 1K 3-22-91 DoubleDir for OS/2 2MONITOR.ZIP F4 1K 3-22-91 Source and .EXE for running 2 monitors. 8514.PAT F4 1K 3-22-91 Patch to get 32x32 icons on 8514/a ═══ 10.4. EMI-list ═══ (Tue Jan 14 21DAT 10-11-91 9ZIP 3-22-91 11 ═══ 10.5. FILES.BBS ═══ - █▀▀▀▀▀▀ █ ║ OS/2 - Fernwood - New Acquisitions - █▄▄▄▄▄ ▄█ ║ Available: 143 files (0.0 MB) - ██ ██ ║ Privilege: Disgrace - ██ ██ ║ Newest: XLIST233.ZIP 3-22-91 (avail: 7-26-91) -────────────────────────────────────────────────────────────────────────────── -Filename Size Date Description -─────────── ─────── ───────── ──────────────────────────────────────────────── AAFONTS.ZIP Text from IBM regarding Anti-aliased Fonts. AFP_120.LZH Areafix 1.2 for OS/2. Permits systems that do echomail . . . . Note: File date and size are provided dynamically by Maximus CBCS! ═══ 10.6. OKfile ═══ Short format (default) @files Gzip @avail Gzip @newfiles Gzip G* G* LONG format (-L) @files Gzip @avail Gzip @newfiles Gzip @DWNSRT55.ZIP GZIP @DWNSRT56.ZIP GZIP @MAXSRT10.ZIP GZIP @MAXSRT11.ZIP GZIP ═══ 10.7. ORPhan list ═══ ═══════════════════════════════════════════════════════════════════════════════ Area Filename Date FilePath ──────── ──────────── ───────── ─────────────────────────────────────────────── F1 123R3UPD.ZIP 3-22-91 GZIP 3-22-91 G ═══ 11. Sample Configuration File ═══ ; ; ██▐███ █▐███ ██ ██ ██▐███ ██▐████ █▐███ ██▐███ ██▐████ ; ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ▐██ ; ██ ██ ██ ██ ██ █ ██ ██ ██ ██▐████ ██ ██ ██▐███ ▐██ ; ██ ██ ██ ██ ██ █ ██ ██ ██ ██ ██ ██ ██ █ ▐██ ; ██▐███ █▐███ █▐███ ██ ██ ██▐████ █▐███ ██ ██ ▐██ ; (font 2) ; ; ; ▄▀▀▀▄ ▄▀▀▀▄ █▄ █ █▀▀▀▀ ▀█▀ ▄▀▀▀▄ █ █ █▀▀▀▄ ▄▀▀▀▄ ▀▀█▀▀ ▀█▀ ▄▀▀▀▄ █▄ █ ; █ █ █ █▀█▄█ █▄▄ █ █ ▄▄ █ █ █▄▄▄▀ █▄▄▄█ █ █ █ █ █ ▀▄█ ; ▀▄▄▄▀ ▀▄▄▄▀ █ ▀█ █ ▄█▄ ▀▄▄▄▀ ▀▄▄▄▀ █ ▀▄▄ █ █ █ ▄█▄ ▀▄▄▄▀ █ █ ; (font 1) ; ; ; █▀▀▀▀▀▀ █ █ █▀▀▀▀▀▀ ; █▄▄▄▄▄▄ █▄ █▄ █▄▄▄▄▄▄ ; ██ ██ ██ ██ ; ██ ██ ██▄▄▄▄▄ ██▄▄▄▄▄ ; (font 3) ; (font 4 is reverse video of 3) ; ; ┌─────────────────────────────────────────────────────────────────────────┐ ; │ Sample Configuration File for DOWNSORT by Rob Hamerling │ ; └─────────────────────────────────────────────────────────────────────────┘ ; ; NOTES: Leading blanks are skipped. ; Lines with '%', '*' or ';' as first non-blank character are ; considered to contain comments only. So are empty lines and ; lines with a valid keyword, but without any parameter. ; ; ! Don't put a comment string after a parameter specification ! ; ; ; AreaDat: Complete file-specification of your 'AREA.DAT' ; ------- ; AREA.DAT is made by MAXIMUS' SILT(P) with -a or -x ; option the path is normally specified in MAX.CTL ; with the option AreaDat in Session Section. ; With the AreaDat you may specify any file that has ; the SILT(P)-format. For example you may make a special ; file for running DOWNSORT with a subset (selection) ; of the normal MAXIMUS file-area's. ; This might be useful for special usergroups. ; Another reason may be the memory usage of DOWNSORT ; under DOS. If you hit the boundary: make a subset. ; Standard OS/2 / DOS naming applies. AreaDat area5124.dat ; AreaINclude Select area's to be INCLUDED in the reports. ; AreaEXclude Select area's to be EXCLUDED from the reports. ; ----------- Specify 1..9 character areanames to indicate which areas ; have to be INcluded or EXcluded. The selection applies to ; all areanames starting with the same characters (may be a ; GROUP of areas!). The selection is case-INsensitive. ; Use ONLY ONE operation: either AreaINclude or AreaEXclude! ; If all your selections do not fit on a single line ; (max 255 characters) take as many lines as you like. ; In total you may specify a maximum of 200 area's. ; Separate the areanames with one or more BLANKS. ; NOTE: A high area-privilege may overrule AreaINclude! * AreaEXclude F * AreaINclude F1 F2 F3 ; AreaOrder Order in which areas have to be sorted. ; Selection can be: K[eep] - Keep order of AREA.DAT ; A[lpha] - Alphabetic order of areaname ; G[roup] - Group order ; I[nclude] - order of areaINclude (above) ; Specify one of these orders (first letter is sufficient). ; 'Group'-order is a special sorting sequence for area names ; consisting of a group of letters followed by digits. ; See the documentation for details. ; Default: Group-order (also with invalid specifications) AreaOrder Group ; TitleFont: Reference number of the BLOCK-font you want for your Title. ; --------- ; Valid numbers: 1 .. Simple font (5x6 pattern) ; 2 .. Pseudo-Stencil Font (7x10 pattern) ; 3 .. ROBoComputer Font (7x8 pattern) ; 4 .. Reversed Video RoboComp (7x8 pattern) ; ; NOTE: The fonts are based on the US-codepage (437). ; This will also work properly for 860 (Portugese), ; 863 (Canadian-French) and 865 (Nordic). ; If codepage 850 (Multilingual) is active, the pattern ; will be adapted a little, see if you like it or not. ; The differences apply mainly to Font2. ; ; The heading of this file shows font 2, 1 and 3 respectively. TitleFont 2 ; Title: Short string that will be displayed in BLOCK-characters ; ----- on top of all FileLists (except BBS-list). ; You may specify this parameter also on the xxxFileList ; parameter. ; The BLOCK fonts are 'proportional', the following number of ; characters will generally fit on a line: ; ; FontTitle 1 maximum characters: 13 ; " 2 .. 4 " " 8 ; ; No more than 20 characters are accepted as input. ; ; If Title isn't specified, it will be DOWNSORT by default. ; Not all characters are supported, and that may vary with ; the font itself. All fonts support: ; ; - UPPER case A..Z ; - LOWER case a..z , but will be translated to UPPER case ; - Digits 0..9 ; - - (hyphen), blank ; ; In addition fonts 1 and 2 support the following characters: ; ; _ * - | . [ ] ( ) / \ ; ; Not-supported characters are displayed as blank. ; The '~'-character (tilde) may be used as required blank, ; the '`'-character (reverse quote) as half width blank. Title `DownSort ; PreTitle Lines to be displayed immediately before the BLOCK-title. ; -------- The lines will be copied asis, however leading blanks are ; skipped, no wrapping or truncation will be applied for ; 'long' lines, '~' (tilde) characters are translated to ; blanks. You may specify 20 PreTitles, excess is ignored. ; Empty PreTitle lines are ignored and not counted. ; There is no default pretitle. ; To create empty lines in your header specify a PreTitle ; with a tilde. PreTitle ~ PreTitle ~~~~~~~<═════ ; -------- Maximum 20 SubTitles are accepted, and exactly the ; same rules apply as for PreTitle. ; SubTitle ~ SubTitle ~~~~~~~<═════ s u b - t i t l e ═════ SubTitle ~ Overview of downloadable files on this magnificent Board SubTitle ~ Node number 9.999/99, modemspeeds: V.99/V.99bis SubTitle ~~~~~~~<═════════════════════════════════════════> SubTitle ~ ; BottomLine Lines to be displayed at the end of the filelist. ; ---------- Maximum 20 BottomLines are accepted, and exactly the ; same rules apply as for PreTitle and Subtitle. ; BottomLine ~ BottomLine ~~~~~~~<═══════ b o t t o m : t i t l e ═════════> BottomLine ~ BottomLine ~~~~~~~<═══ How do you like DOWNSORT, folks? ════> BottomLine ~ ; MaxNewFiles Limit the number of file entries in BBS-list and NEW-list(s). ; ----------- It specifies the actual number of file entries that may ; appear in NewFileList and BBSFileList. ; If you specify more than one privilege for NewFileList, ; then each list will contain (max) the MaxNewFiles number ; of file entries, but the collection of each may differ due ; to privilege considerations. ; Individual values for BBS-list and NEW-list may be specified ; on the corresponding xxxFileList line (see below) ; Optionally the value may be followed by a single letter. ; In stead of the number of files, the list will then be ; limited by the age of the files to be included: ; in days (D), weeks (W) or Months (M). MaxNewFiles 3W ; NonDupEXT Suppress reporting as 'duplicate' if 2 files with equal ; --------- filenames but unequal extensions are defined as 'pair'. ; 5.7 The example specification below has the effect that files of ; 5.7 any pair "xyz.SDA" and "xyz.SDN" ("xyz": any filename) will ; 5.7 not be listed in DupFileList. ; 5.7 - Files with equal filename AND equal extension will ; 5.7 still be reported as duplicate even when the extension ; 5.7 is one of a 'NonDupEXT' pair! ; 5.7 - Multiple extensions must be specified in as many pairs as ; 5.7 can be formed (3 extension 3 pairs; 4 ext. 6 pairs; etc) ; 5.7 (e.g: for Nodelists: DAT EXT DAT IDX EXT IDX). ; 5.7 Multiple pairs can be specified on a line, and multiple lines ; 5.7 can be specified: in total up to 100 pairs will be accepted. ; 5.7 Default: no suppression NonDupEXT SDN SDA ; OrphanDesc Description text of Orphan files. ; NotFoundDesc Description text of files without description in FILES.BBS. ; ------------ The description will replace the default hard-coded text. ; Up to 45 characters may be specified. ; The '~' (tilde) character will not be translated here! OrphanDesc ~~~~~ !!!! Orphelin !!!! ~~~~~ NotFoundDesc +++ Ce fichier dВfie toute description! +++ ; OfflineDesc When a filespecification is found in FILES.BBS but not ; ----------- in the corresponding download directory, this text replaces ; the filesize and date (right aligned). ; Up to 14 characters are accepted. OfflineDesc -- archived -- ; AVAstrip You may wish to strip off AVATAR graphics characters from ; -------- the contents of your FILES.BBS files. ; Specify 'No' to deactivate stripping (default is 'Yes'). ; ==> Works ONLY for COMMENT LINES in ALL- and IPF-lists, and ; remember: comments are only listed with KEEPSEQ (no sort). AVAstrip Yes ; ====================================================================== ; Above were the parameters with a global effect: applicable to all ; lists or to the execution mode of DOWNSORT. ; Below follow list-specific parameters, which might override some of ; the settings of the global parameters. ; Leave this sequence: first global, then specific parameters! ; ====================================================================== ; ; xxxFileList: Create one or more File lists of type 'xxx'. ; ; xxx ───┐ ┌──────────── TWIT ; v │┌─────────── DISGRACE ┌─ FileName of the list ; ┌── ORP ││┌────────── LIMITED │ (without extension, ; ┌── BBS │││┌───────── NORMAL │ maximum 8 characters) ; ┌── NEW ││││┌──────── WHORTY │ ; ┌── ALL │││││┌─────── PRIVIL │ ; ┌── GBL ││││││┌────── FAVORED │ ; ┌── DUP │││││││┌───── EXTRA │ ┌─ Additional options for ; ┌── IPF ││││││││┌──── CLERK │ │ each list individually: ; ┌── IP2 │││││││││┌─── ASSISTSYSOP │ │ ; ┌── OK ││││││││││┌── SYSOP │ │ -W - Wrap Description ; ┌── EMI │││││││││││┌─ HIDDEN │ │ -T - Truncate Descr. ; │ ││││││││││││ │ │ -A - Alpha sort on name ; │ ││││││││││││ │ │ -D - Date sort ; │ ││││││││││││ │ │ -K - Keep FILES.BBS seq ; │ ││││││││││││ │ │ -If - Include_filespec ; │ ││││││││││││ ┌─────────┘ │ nnnP - max number of entries ; │ ││││││││││││ │ │ -Fn - Title font (0..4) ; │ ││││││││││││ │ │ -X - eXcl priv in headers ; v ││││││││││││ v v ; ═══─═══════ vvvvvvvvvvvv ════════ ════════════════════════════════ ; xxxFileList TDLNWPFECASH FileName Option-1 Option-2 . . . Option-n ; ; If just xxxFileList is specified, the Level by default will be SYSOP ; and the filename will be DOWNSORT. ; ; For NEW-, GBL-, ALL-, IPF-, OK- and EMI-List up to 10 privilege letters ; can be specified and for each character a separate list-file will ; be generated with the following extension: ; NewFileList: N~p ; AllFileList: A~p ; IpfFileList: I~p ; GblFileList: G~p ; OKFileList: O~p ; EmiFileList: E~p ; where 'p' is the privilege character. ; For the BBS- and DUP-list only 1 privilege character will be accepted. ; The default filename (DOWNSORT) for each list can be overridden ; with the [optional] third parameter on the xxxFileList line. ; ; Additionally the following parameters may be specified (in any sequence). ; ; nnn[P] Limit the number of file-entries to a maximum of 'nnn': ; - for BBS-list and NEW-list the max size of the list ; - for IPF-list the maximum size of a VIEW-page ; If followed by Period-indicator ('d', 'w' or 'm') the list is ; limited not by number, but by file-AGE in Days, Weeks or Months. ; NOTE: the Period-indicator is not valid for IPF-lists. ; ; -A Selects Alphabetic sort on filename ; -D Selects sort on Date/Time of the file ; -K Keep sequence of files in FILES.BBS ; (ALL- and IPF-list, and newly generated FILES.BBS files). ; ; -T Causes Truncation of long descriptions (to about 50 characters) ; so that only 1 line will appear per file-entry. ; -W Causes Wrapping of long descriptions: the report will contain ; as many lines as needed for the complete description. ; ; -L Long list format: ; - OK-file: explicit filenames in stead of wildcards (PATH\*.*) ; - not applicable to other lists except FILFilePath (see below) ; ; -If Include userfile (f = file-spec) just behind the block-title ; (if any). The file is included without any translation, so beware ; of special characters and effects like formatting (text-float) in ; the IPF- and IP2-list! ; NOTEs: - does not apply to BBS-, DUP- and ORP-FileLists. ; - BBSFileList includes DOWNSORT.HDR and DOWNSORT.TRL ; ; -X eXclude privilege indications in NEW-, ALL-, IPF- and GBL-lists. ; ; -Fn ListTitle font. Choose for 'n': 1, 2, 3 or 4 (default is 2). ; See some samples of the fonts in the top of this file. ; If '0' (zero) specified, then NO BLOCK TITLE will be generated. ; ; If an asterisk (*) is used as parameter value character, the hardcoded ; default value will be used. If you specify mutually exclusive ; options (-A or -D) or (-T or -W), then the last value on the line ; will be effective. ; ; NOTES 1. For ORP-fileList the privilege parameter does not apply. ; ----- 2. Invalid or not-recognised sub-parameters will be ignored ; without warning! ; 3. You may specify only 1 line for each list-type. AllFileList s Down_All -k -W -f4 -IDownsort.Inc BBSFileList s Down_Bbs 3w -d -w -F1 DupFileList s Down_Dup -w -F4 GblFileList s Down_Gbl -a -t -F3 -IDownsort.Inc IpfFileList s Down_Ipf 200 -a -F3 Ip2FileList s Down_Ip2 200 -a -F3 NewFileList s Down_New 2m -a -t -f2 EmiFileList s Down_Emi 22 -d -w -IDownsort.inc OKFileList s Down_OKE -l -IDownsort.Mag OrpFileList * Down_Orp -a -w -f4 ; NOTE: The IPF-list has the format of an INPUT-file for the ; Information Presentation Facility Compiler (IPFC), which is ; part of the IBM OS/2 Program Development Toolkit and equivalent ; MicroSoft package. This inputfile has to be processed by this ; compiler. For the sample above with the command: ; IPFC DOWN_IPF.I~P /INF ; Be sure to have the file DOWNSORT.BMP in the default directory and ; set the IPFC environment-variable (e.g. SET IPFC=D ; IPFC will produce a file called DOWN_IPF.INF, which is ready ; to be viewed with the command: ; VIEW DOWN_IPF ; See the Toolkit documentation for details of IPFC. ; IPFC is not distributed with the DOWNSORT package! ; ; IP2FileList has the OS/2 2.0+ IPF format, you will need IPFC ; of the OS/2 2.0+ toolkit! ; ====================================================================== ; FILFilePath Specifications for the "FILES.BBS"-type of output. ; ----------- - First parameter is privilege selection flag. Specify '*' ; to get all files, even the newly uploaded ones. ; - Second parameter is [optional] specification of ; destination directory of newly generated Files.BBS files. ; Use the format: drive7 be "FILES.ac", extension will be the first 3 characters of ; 5.7 areaname. However when 'long' areanames are present (>3 char), ; 5.7 the output-file will be called "areaname.BBS". ; If not specified the MAXIMUS path specification will be ; used (ListFile parameter if used in Maximus' AREA.CTL ; otherwise the Download directory). ; - Many but not all flags as defined for the 'real' lists ; apply to the FILES.BBS-output of Downsort, for example: ; - TITLE is not applicable to FILES.BBS ; - file-description will be kept on a single line, not ; wrapped or truncated, even if longer than 240 characters. ; - Entries can be sorted, but then you will loose your ; comments (if any): -K (Keep Sequence) is default. ; 5.7 - The -L (LONG) means here: include file size and file date. ; - Avatar codes will be kept unchanged. FILFilePath s \c2\downsort\filesbbs\ -a -X -l -idownsort.inc -F4 ; ; ═════════════════════════════════════════════════════════════════ ; ; Commandline parameters may supply additional options, and may ; (partly) override the specifications in this configuration file. ; Consider this file as your customised default setting for DOWNSORT, ; and use commandline parameters only to make other lists on the fly. ; For the reports there is nothing that you can specify with commandline ; parameters, that you cannot specify in this configuration file! ; ═══ ═══ For the target audience the distiction between 'user' and 'sysop' is strictly the author's view!